package cn.tedu.charging.order.controller;

import cn.tedu.charging.common.pojo.JsonResult;
import cn.tedu.charging.order.pojo.param.OrderAddParam;
import cn.tedu.charging.order.service.OrderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 订单接口
 */
@RestController// 控制器
@RequestMapping("/order")// 请求路径
@Slf4j// 日志记录器
@Api(tags = "订单接口")
public class OrderController {

    @Autowired// 自动注入
    private OrderService orderService;

    /**
     * 创建订单
     * @param orderAddParam
     * @return
     */
    @ApiOperation(value = "创建订单")
    @PostMapping("/create")// 请求路径
    public JsonResult createOrder(@RequestBody OrderAddParam orderAddParam){//@RequestBody注解用于将HTTP请求体中的JSON或XML数据绑定到Java对象上。
        log.debug("创建订单入参:{}",orderAddParam);
        log.debug("订单创建调用service入参:{}",orderAddParam);
        String orderNo = orderService.createOrder(orderAddParam);
        log.debug("订单创建调用service出参:{}",orderNo);
        JsonResult jsonResult = JsonResult.ok(orderNo, "创建订单成功");
        log.debug("创建订单入参:{},出参:{}",orderAddParam,jsonResult);
        return jsonResult;
    }
}
